package main

import (
	"log"
	"net/http"
	"net/rpc"
)

// golang实现RPC程序，实现求矩形面积和周长

type Params struct {
	width, Height int
}

type Rect struct{}

// RPC服务端的方法
func (r *Rect) Area(p Params, ret *int) error {
	*ret = p.Height * p.width
	return nil
}

// 周长
func (r *Rect) Perimeter(p Params, ret *int) error {
	*ret = (p.Height + p.width) * 2
	return nil
}

// 主函数
func main() {
	//1.注册服务
	rect := new(Rect)
	//注册一个rect服务
	rpc.Register(rect)
	//2.服务处理绑定在http协议上
	rpc.HandleHTTP()

	// 3.监听服务
	err := http.ListenAndServe(":8000", nil)
	if err != nil {
		log.Panicln(err)
	}
}
